package com.study.controller;

import com.pojo.req.MessageTaskReq;
import com.study.service.IMessageTaskService;
import com.utility.result.Result;
import org.springframework.web.bind.annotation.*;

import java.lang.reflect.InvocationTargetException;

/**
 * 消息中心
 *     接收：发送消息
 * @author admin
 */
@RestController
@RequestMapping("/messageTask")
public class MessageTaskController {

    private final IMessageTaskService iMessageTaskService;

    public MessageTaskController( IMessageTaskService iMessageTaskService) {
        this.iMessageTaskService = iMessageTaskService;
    }

    /**
     *  消息中心 消息发送流程：
     *        根据消息接收时间： —— 请求发送 ——— 发送消息体 ———> mysql添加发送消息实例数据 ————> (定时消息发送) 添加quartz Job定时任务 —— 请求响应结束
     *        ————> Job运行时 添加消息进入 Redis 异步发送消息 ————> 异步消费者发送消息体
     */
    @PostMapping("send")
    public Result test(@RequestBody MessageTaskReq messageTaskReq) throws InvocationTargetException, IllegalAccessException {
        iMessageTaskService.messageSend(messageTaskReq);
        return Result.returnCodeSuccess();
    }

}
